home *** CD-ROM | disk | FTP | other *** search
/ Internet Pratica / IPRAT_01.iso / SQL / ariacom / br15Evaluation.exe / br15Evaluation / ASP SCripts / vbMainParse.asp < prev    next >
Text File  |  2002-09-09  |  6KB  |  197 lines

  1. <%
  2. '
  3. '  Ariacom Business Reports
  4. '  Copyright 2001-2002, ARIACOM SARL, Geneva, Switzerland
  5. '  All rights reserved
  6. '  www.ariacom.com
  7. '
  8.  
  9. '
  10. '
  11. 'processElement
  12. '
  13. sub processElement(theNode)
  14.   ' Display value of the node
  15.   select case theNode.nodeName
  16.   case kXml_TagItem
  17.     processSubNodes theNode
  18.  
  19.   case kXml_TagItemDisplay
  20.     itemDisplay theNode
  21.  
  22.   case kXml_TagItemString
  23.     itemStringDisplay theNode
  24.   
  25.   case kXml_TagItemMultiString
  26.     itemMultiStringDisplay theNode
  27.   
  28.   case kXml_TagItemEnum
  29.     itemEnumDisplay theNode
  30.   
  31.   case kXml_TagItemBoolean
  32.     itemBooleanDisplay theNode
  33.   
  34.   case kXml_TagItemNumeric
  35.     itemNumericDisplay theNode
  36.   
  37.   case kXml_TagActionSubmit
  38.     itemActionSubmitDisplay theNode
  39.  
  40.   case kXml_TagActionLink
  41.     itemActionLinkDisplay theNode
  42.  
  43.   case else
  44.     processSubNodes theNode
  45.   end select
  46.  
  47. end sub
  48.  
  49. '
  50. 'processSubNodes
  51. '
  52. sub processSubNodes(theNode)
  53.   ' Parse the sub nodes
  54.   dim nodeListValue
  55.   set nodeListValue = theNode.childNodes
  56.   dim i
  57.   for i = 0 to (nodeListValue.length -1)
  58.     processNode nodeListValue.nextNode
  59.   next
  60. end sub
  61.  
  62.  
  63. '
  64. 'processNode
  65. '
  66. sub processNode(theNode)
  67.   'brDebug "processNode:" & theNode.nodeTypeString & " " & theNode.nodeName
  68.   select case theNode.nodeTypeString
  69.   case "element"
  70.     'First we set that attribute id with the complete path
  71.     dim newId
  72.     newId = theNode.getAttribute(kXml_AttributeDataTag) & theNode.getAttribute(kXml_AttributeId)
  73.     if newId <> "" then
  74.       call theNode.setAttribute(kXml_AttributeId, newId)
  75.     end if
  76.  
  77.     if gStrPresentationFunction <> "" then execute gStrPresentationFunction &" true,theNode"
  78.     processElement theNode
  79.     if gStrPresentationFunction <> "" then execute gStrPresentationFunction &" false,theNode"
  80.  
  81.   case "cdatasection" 'Probably direct HTML output
  82.     Response.Write theNode.text
  83.     
  84.   case "document" 'Main document
  85.     processSubNodes theNode
  86.     
  87.   case "cdatasection" 'Data section, we write directly to the Response
  88.     response.write theNode.text
  89.   end select
  90. end sub
  91.  
  92. '
  93. 'main
  94. '
  95. sub main(theNode)
  96.   dim parseItemArray(15) '15 items max
  97.   dim parseItemLength
  98.   dim startHTML, stopHTML
  99.   dim ii, jj
  100.   dim nodeList
  101.  
  102.   'overwrite action and ident if necessary
  103.   dim hh, infoNode, infoNodeList, currentInfoNode
  104.   set infoNode = theNode.selectNodes(".//item[@id=""" & kGenItemIdInformation & """]")
  105.   if infoNode.Length > 0 then
  106.     set infoNodeList = infoNode.item(0).childNodes
  107.     for hh=0 to (infoNodeList.length - 1)
  108.       set currentInfoNode = infoNodeList.nextNode
  109.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagRequestAction then
  110.         gstrAction = currentInfoNode.text
  111.       end if
  112.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagRequestIdent then
  113.         gstrIdent = currentInfoNode.text
  114.       end if
  115.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagRequestParameter then
  116.         gstrParam = currentInfoNode.text
  117.       end if
  118.     next
  119.   end if
  120.   'get document informations
  121.   set infoNode = theNode.selectNodes(".//item[@id=""" & kGenItemIdDocumentInformation & """]")
  122.   if infoNode.Length > 0 then
  123.     set infoNodeList = infoNode.item(0).childNodes
  124.     for hh=0 to (infoNodeList.length - 1)
  125.       set currentInfoNode = infoNodeList.nextNode
  126.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagDocumentType then
  127.         gStrDocumentType = currentInfoNode.text
  128.       end if
  129.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagDocumentCharSet then
  130.         gStrDocumentCharSet = currentInfoNode.text
  131.       end if
  132.       if currentInfoNode.getAttribute(kXml_AttributeId) = kXml_TagDocumentTitle then
  133.         gStrDocumentTitle = currentInfoNode.text
  134.       end if
  135.     next
  136.   end if
  137.  
  138.  
  139.   'handle document type
  140.   if gStrDocumentType = "" then  gStrDocumentType = "text/html"
  141.   Response.ContentType = gStrDocumentType
  142.  
  143.   if gStrDocumentType = "text/html" and gStrAction <> kAction_RepViewFile and gStrAction <> kAction_RepExecWithLogout then 'HTML
  144.     addJavaScripts() 'java scripts is added here
  145.  
  146.     Response.Write("<html><head>")
  147.     'handle charset
  148.     if gStrDocumentCharset <> "" then
  149.       Response.Write("<meta http-equiv=""Content-Type"" content=""charset=" & gStrDocumentCharset & """>")
  150.     end if
  151.     
  152.     
  153.     'add meta info for css
  154.     Response.Write("<META http-equiv=""Content-Style-Type"" content=""text/css"">")
  155.     Response.Write("<LINK href=""reportStyle.inc"" rel=styleSheet type=text/css>")
  156.     'handle title
  157.     if gStrDocumentTitle <> "" then
  158.       Response.Write("<title>" & gStrDocumentTitle & "</title>")
  159.     end if
  160.     'style is specified here
  161.     Response.Write("<style>a:hover {color: #FF0000;text-decoration:underline;}</style>")
  162.     Response.Write("</head>")
  163.  
  164.     ' initialize defaults and presentation data  
  165.     call setDefaultPresentationValues()
  166.     call initPresentationContext(parseItemArray, parseItemLength, startHTML, stopHTML)
  167.  
  168.     Response.Write startHTML
  169.     for ii=0 to (parseItemLength-1)
  170.       'select the items to parse
  171.       set nodeList = theNode.selectNodes(parseItemArray(ii))
  172.       'brDebug parseItemArray(ii) & " result:" & CStr(nodeList.Length)
  173.       for jj=0 to (nodeList.Length-1)
  174.         processNode nodeList.item(jj)
  175.       next
  176.     next
  177.     Response.Write stopHTML
  178.     Response.Write("</html>")
  179.   else 
  180.     'other type, no html at all
  181.     set nodeList = theNode.selectNodes(".//item[@id=""" & kGenItemIdMain & """]")
  182.     for jj=0 to (nodeList.Length-1)
  183.       processNode nodeList.item(jj)
  184.     next
  185.   end if
  186.  
  187.   'Do not keep the session in following cases
  188.   if gStrAction = kAction_MainLoginWindow or gStrAction = kAction_MainLogout or gStrAction = kAction_MainErrorWithLogout or gStrAction = kAction_RepExecWithLogout or gStrAction = kAction_RepExecOutputWithLogout then
  189.     'brDebug "Abandon: " & Session.SessionID
  190.     set Session("reportServer") = nothing
  191.     Session.Abandon
  192.   end if 
  193. end sub
  194. %>
  195.  
  196.  
  197.